package com.sgcc.manager.sql.dao;

import java.util.List;

import org.springframework.jdbc.support.rowset.SqlRowSet;

/***
 * 
 * @ProjectName：ams-app   
 * @ClassName：ISqlDao   
 * @Description: TODO
 * @author suihongxin 
 * @date 2015-2-9 下午03:30:20 
 * @version V1.0
 */
public interface ISqlDao {
	/***
	 * 用于ddl语句
	 *  CREATE,ALTER,DROP,TRUNCATE,COMMENT,RENAME
	 *  GRANT 授权 REVOKE
	 * @date 2015-2-9 下午03:36:41
	 *
	 */
	public void execute(String sessionId,String sql)throws Exception;
	
	/***
	 * 用于更新语句
	 * UPDATE,DELETE
	 * @throws Exception 
	 * @date 2015-2-9 下午03:36:41
	 */
	public int update(String sessionId,String sql) throws Exception;
	
	
	/***
	 * 用于 select 开头的sql
	 * @date 2015-2-9 下午03:47:53
	 * @param sql
	 * @return
	 */
	public List queryList(String sessionId,String sql)throws Exception;
	
	public int queryForCount(String sessionId,String sql)throws Exception ;
	/***
	 * 获取rowSet
	 * @date 2015-2-9 下午04:02:08
	 * @param sql
	 * @return
	 * @throws Exception 
	 */
	public SqlRowSet queryForRowSet(String sessionId,String sql,int page,int pageSize) throws Exception;
	
	/**
	 * 连接数据库
	 * <br>Description:TODO 方法功能描述
	 * @param ipAdd
	 * @param db
	 * @param username
	 * @param password
	 * @return
	 */
	public boolean LinkDB(String sessionId,String ipAdd,String db, String username,String password,String type);
	
	/**
	 * 
	 * <br>Description:根据jdbcUrl连接到数据库或者集群
	 * @param oracleUrljdbc的Url信息
	 * @param username
	 * @param password
	 * @param type
	 */
	public boolean LinkDB(String sessionId,String oracleUrl, String username, String password,String type);

	/**
	 * <br>Description:根据起止行号获取多条记录 
	 * @param sessionId
	 * @param sql
	 * @param begin
	 * @param end
	 * @return
	 * @throws Exception 
	 */
	public SqlRowSet queryRowSet(String sessionId, String sql, int begin,int end) throws Exception;
}
